#include <iostream>
#include <cstdio>
#include <unistd.h>
#include <signal.h>

#include <iostream>
#include <cstdio>
#include <unistd.h>
#include <signal.h>

int quit = 0;

void Count(int cnt)
{
    while(cnt)
    {
        printf("%2d\r",cnt);
        fflush(stdout);
        cnt--;
        sleep(1);
    }
    printf("\n");
}

void handler(int signo)
{
    // cout << "get a signo: " << signo << "正在处理中..." << endl;
    // Count(20);

    printf("pid:%d,%d 号信号，正在被捕捉！\n",getpid(),signo);
    printf("quit:%d",quit);
    quit = 1;
    printf("-> %d\n",quit);
}

// int main()
// {
//     // sigaction函数传参为struct sigaction
//     struct sigaction act,oact;
//     act.sa_handler = handler;
//     act.sa_flags = 0;
//     sigemptyset(&act.sa_mask);
//     // 当我们正在处理某种信号时，也想顺便屏蔽其他信号
//     // 就可以增加进sa_mask当中
//     sigaddset(&act.sa_mask,3);
//     sigaction(SIGINT,&act,&oact);

//     while(true) sleep(1);

//     return 0;
// }


int main()
{
    signal(2,handler);
    while(!quit);
    printf("注意：我是正常退出的！！\n");

    return 0;
}